package primeiro_grafico;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;
/**
 * Exemplo - Fonte StackOverflow
 * 
 * @author dennisxsf@gmail.com - Dennis Fernandes
 * @version 0.1
 * 
 */
public class PlotTest {
	
	private XYSeriesCollection dataset;
	
	/**
	 * Construtor
	 */
	public PlotTest () {
        dataset = new XYSeriesCollection();
        XYSeries primeira_linha = new XYSeries("Dólar");
        primeira_linha.add(2010, 1.76400); // Primeiro Ponto da primeira linha
        primeira_linha.add(2011, 1.56850); // Segundo Ponto da primeira linha
        primeira_linha.add(2012, 1.69769); // Terceiro Ponto da primeira linha
        primeira_linha.add(2013, 1.94968); // Quarto Ponto da primeira linha
        primeira_linha.add(2014, 2.23899); // Quinto Ponto da primeira linha
        dataset.addSeries(primeira_linha);

        XYSeries segunda_linha = new XYSeries("Euro");
        segunda_linha.add(2010, 2.32534); // Primeiro Ponto da segunda linha
        segunda_linha.add(2011, 2.32496); // Segundo Ponto da segunda linha
        segunda_linha.add(2012, 2.40996); // Terceiro Ponto da segunda linha
        segunda_linha.add(2013, 2.55861); // Quarto Ponto da segunda linha
        segunda_linha.add(2014, 3.02960); // Quinto Ponto da segunda linha
        dataset.addSeries(segunda_linha);
        
        showGraph();
    }
	
	private void showGraph() {
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        final ApplicationFrame frame = new ApplicationFrame("Primeiro Gráfico");
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }

    private JFreeChart createChart(final XYDataset dataset) {
        final JFreeChart chart = ChartFactory.createScatterPlot(
            "Gráfico de Linha",       // Título do Gráfico
            "Ano",                    // Legenda do Eixo X
            "Valor",                  // Legenda do Eixo Y
            dataset,                  // Dados
            PlotOrientation.VERTICAL, // Orientação
            true,                     // Incluir Legenda
            true,                     // Tooltips
            false                     // urls
        );
        XYPlot plot = (XYPlot) chart.getPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesLinesVisible(0, true);
        plot.setRenderer(renderer);
        return chart;
    }
	
	/**
	 * Método principal
	 * @param args
	 */
	public static void main(String[] args) {
		new PlotTest();
	}
}
